using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ErrorReporter")]
	public class ErrorReporter : MonoBehaviour
	{
		public static int LOG_LINES => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "ErrorReporter", "LOG_LINES");

		public static bool WRITE_DEBUG_ZIP => MonoClass.smethod_6<bool>(TritonHs.MainAssemblyPath, "", "ErrorReporter", "WRITE_DEBUG_ZIP");

		public static AssetReference BugReportUI => MonoClass.smethod_7<AssetReference>(TritonHs.MainAssemblyPath, "", "ErrorReporter", "BugReportUI");

		public int m_sendCount => method_2<int>("m_sendCount");

		public bool busy => method_11<bool>("get_busy", Array.Empty<object>());

		public string submitURL => method_13("get_submitURL");

		public ErrorReporter(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ErrorReporter(IntPtr address)
			: this(address, "ErrorReporter")
		{
		}

		public static ErrorReporter Get()
		{
			return MonoClass.smethod_15<ErrorReporter>(TritonHs.MainAssemblyPath, "", "ErrorReporter", "Get", Array.Empty<object>());
		}

		public static List<byte> buildZipArchive(ReportBuilder builder)
		{
			return MonoClass.smethod_15<Class250<byte>>(TritonHs.MainAssemblyPath, "", "ErrorReporter", "buildZipArchive", new object[1] { builder })?.method_25();
		}

		public static List<byte> getLogBytes()
		{
			return MonoClass.smethod_15<Class250<byte>>(TritonHs.MainAssemblyPath, "", "ErrorReporter", "getLogBytes", Array.Empty<object>())?.method_25();
		}

		public void SendExceptionReport(string message, string stackTrace)
		{
			method_8("SendExceptionReport", message, stackTrace);
		}

		public void SendBug(string initialDescription)
		{
			method_8("SendBug", initialDescription);
		}

		public void OnBugUIReady(AssetReference assetRef, GameObject gameObject, object callbackData)
		{
			method_8("OnBugUIReady", assetRef, gameObject, callbackData);
		}

		public void Send(ReportBuilder builder)
		{
			method_8("Send", builder);
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnEnable()
		{
			method_8("OnEnable");
		}

		public void OnDisable()
		{
			method_8("OnDisable");
		}

		public void register()
		{
			method_8("register");
		}

		public void unregister()
		{
			method_8("unregister");
		}

		public void reportUnhandledException(string message, string stackTrace)
		{
			method_8("reportUnhandledException", message, stackTrace);
		}

		public bool alreadySent(string hash)
		{
			return method_11<bool>("alreadySent", new object[1] { hash });
		}
	}
}
